package cn.frank.framework.caesar.module.ai.langChain4j.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;

/**
 * @description: TODO
 * @author: renjiangyang
 * @date 2023/10/23 9:52:29
 * @since 1.8
 */
@Controller
public class BaseLangChain4jController {

    /**
     * springfarmework的文件对象转换成File
     */
    public static List<File> convertFiles(List<MultipartFile> multipartFiles) {
        List<File> files = new ArrayList<>();
        for (MultipartFile multipartFile : multipartFiles) {
            File file = convertFiles(multipartFile);
            if (file != null) {
                files.add(file);
            }
        }
        return files;
    }

    /**
     * springfarmework的文件对象转换成File
     */
    public static File convertFiles(MultipartFile multipartFile) {
        try {
            // 获取文件的临时存储路径（默认为系统的临时目录）
            Path tempFile = Files.createTempFile(multipartFile.getOriginalFilename(), null);
            // 将 MultipartFile 写入临时文件
            Files.write(tempFile, multipartFile.getBytes());
            // 将临时文件转换为 File 对象并添加到列表中
            return tempFile.toFile();
        } catch (IOException e) {
            // e.printStackTrace(); // 处理异常，例如打印堆栈跟踪或记录错误信息
            throw new RuntimeException("", e);
        }
    }
}
